package com.example.mvp.binder;

import com.example.mvp.delegate.XDelegate;

/**
 * 公共数据视图绑定控制器
 * Created by sun.li on 2018/6/5.
 *
 * @author sun.li
 */

public interface BaseDataBinder<T extends XDelegate, D extends Object> {

    /**
     * 将数据与View绑定，这样当数据改变的时候，框架就知道这个数据是和哪个View绑定在一起的，就可以自动改变ui
     * 当数据改变的时候，会回调本方法。
     *
     * @param viewDelegate 视图层代理
     * @param data         数据模型对象
     */
    void viewBindModel(T viewDelegate, D data);

    /** 指定数据的数据类型，必须指定*/
    Class<D> getDataClass();
}
